package common.entity;

import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.Date;

@Getter@Setter@ToString
public class course_video implements Comparable<course_video>{
    String id; //2-11-11 长度50
    Integer course_id;
    String name; //长度100
    String content;//视频内容长度1000 本视频讲解三角函数
    @TableField(fill = FieldFill.INSERT)
    Date up_time;  //上传时间
    /**
     * 验证 id是否为2-11-11格式
     * @param id
     */
    private static final String ErrorMsg="视频序号格式不正确\n应为: 2-11-12\n以此类推且不能为负数和0";
    public void setId(String id) throws Exception{
        String[] split = id.split("-");
        try {
             for (String num : split) {
                if(Integer.parseInt(num)<=0){throw new Exception(ErrorMsg);};
             }
          } catch (Exception e) {
            throw new Exception(ErrorMsg);
         }
        this.id = id;
    }


    @Override
    public int compareTo(course_video course_video) {
        String[] split = this.id.split("-");
        String[] split1 = course_video.getId().split("-");
        for(int i=0;i<Math.min(split1.length,split.length);i++){
            if(Integer.parseInt(split1[i])==Integer.parseInt(split[i])){continue;}
            return Integer.parseInt(split[i])>Integer.parseInt(split1[i]) ? 1:-1;
        }
        return 0;
    }

//    public static void main(String[] args) {
//        ArrayList<course_video> course_videos = new ArrayList<>();
//        try {
//            course_video c1 = new course_video();
//            c1.setId("1-1-3");course_videos.add(c1);
//            course_video c2 = new course_video();
//            c2.setId("1-1-4");course_videos.add(c2);
//            course_video c3 = new course_video();
//            c3.setId("2-1-4");course_videos.add(c3);
//            course_video c4 = new course_video();
//            c4.setId("2-1-4-5");course_videos.add(c4);
//            Collections.sort(course_videos);
//            course_videos.stream().forEach(course_video -> {
//                System.out.println(course_video.getId());
//            });
//        } catch (Exception e) {
//            e.printStackTrace();
//        }
//    }


}
